using JT808Protocol.Models.Attributes;
using JT808Protocol.Models.Enums;
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace JT808Protocol.Models.BodyParserStrategy
{
    /// <summary>
    /// 音视频属性 0x1003
    /// </summary>
    public class DpAvProperty_0x1003 : IJT808Body
    {
        /// <summary>
        /// 输入音频编码方式
        /// </summary>
        [JsonPropertyName("输入音频编码方式")] public EnumAvFormat AudioFormat { get; set; }

        /// <summary>
        /// 音频声道数
        /// </summary>
        [JsonPropertyName("音频声道数")] public byte AudioChannelCount { get; set; }

        /// <summary>
        /// 采样率
        /// </summary>
        [JsonPropertyName("采样率")] public EnumAudioFrequency Frequency { get; set; }

        /// <summary>
        /// 采样位数
        /// </summary>
        [JsonPropertyName("采样位数")] public EnumAudioBitWide bitWide { get; set; }

        /// <summary>
        /// 音频帧长度
        /// </summary>
        [JsonPropertyName("音频帧长度")] public ushort AudioFrameLength { get; set; }

        /// <summary>
        /// 是否支持音频输出，0 不支持，1 支持
        /// </summary>
        [JsonPropertyName("是否支持音频输出")]
        [JsonBooleanString("支持", "不支持")]
        public byte IsSupportAudioOutput { get; set; }

        /// <summary>
        /// 视频编码方式
        /// </summary>
        [JsonPropertyName("视频编码方式")] public EnumAvFormat VideoFormat { get; set; }

        /// <summary>
        /// 终端最大音频物理通道数
        /// </summary>
        [JsonPropertyName("终端最大音频物理通道数")] public byte DeviceMaxAudioChannelCount { get; set; }

        /// <summary>
        /// 终端最大视频物理通道数
        /// </summary>
        [JsonPropertyName("终端最大视频物理通道数")] public byte DeviceMaxVideoChannelCount { get; set; }

        public override IJT808Body ReadBody(ReadOnlySpan<byte> data, ref int index)
        {
            throw new NotImplementedException();
        }

        public override List<byte> WriteToBytes()
        {
            throw new NotImplementedException();
        }
    }
}